我有一个通用处理程序,我想根据一些查询字符串自动登录。
但是后来我设置了 FormsAuthentication.SetAuthCookie(user.Name, false),但是 HttpContext.Current.User.Identity.IsAuthenticated 返回 false,由于 web.config 中设置的限制,我无法重定向。
那么如何在 .ashx 文件中设置 FormsAuthentications 呢?
我有一个通用处理程序,我想根据一些查询字符串自动登录。
但是后来我设置了 FormsAuthentication.SetAuthCookie(user.Name, false),但是 HttpContext.Current.User.Identity.IsAuthenticated 返回 false,由于 web.config 中设置的限制,我无法重定向。
那么如何在 .ashx 文件中设置 FormsAuthentications 呢?
要使用 FormsAuthentication 模块执行登录,您可能只想使用RedirectFromLoginPage静态方法,它在幕后:
这是您的处理程序的简短原型:
public void ProcessRequest(HttpContext context)
{
// TODO: Determine the user identity
var username = context.Request.QueryString["username"];
FormsAuthentication.RedirectFromLoginPage(username, true);
}
如果您对该方法执行其工作的方式感到不舒服,您可以手动执行每个活动:
您是否尝试将其添加为 web.config 中的位置路径?
<configuration>
<location path="foo.ashx">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
<location >
<system.web>
<authorization>
<allow users="?"/>
</authorization>
</system.web>
</location>
</configuration>