我的应用程序需要 2 种登录机制,一种是在 Windows 安全对话框中提供凭据的基本身份验证,另一种是伪造的基本身份验证,这意味着加密的用户名,密码作为查询字符串中 url 的一部分发送,例如http://myurl.com? username=xxx&pwd=xxxxxx 我已经创建了一个自定义模块,如下所示
public class mymodule:IhttpModule
{
public void OnApplicationAuthenticateRequest(object sender, EventArgs e)
{
var context = ((HttpApplication)sender).Context;
if(context.Request.Querystring["username"]!=null)
{
//then write the cookie
createcookie();
}
else
{
//Request user for Basic authentication
context.Request.Headers["Authorization"])
}
}
}
1)当我调用这样的 URL 时http://myurl.com?username=xxx&pwd=xxxxx第一个请求转到 AuthenticateRequest 并创建 cookie,但 AuthenticateRequest 被多次调用,并且在某一时刻 Request.QueryString 为 null 并且它执行行 context.Request.Headers["Authorization"]) 并触发 Windows 安全对话框(基本身份验证),我如何实现我的要求。