Iis 如何检查是否使用Cookie执行了用户验证(FormsAuthentication)?

Iis 如何检查是否使用Cookie执行了用户验证(FormsAuthentication)?,iis,cookies,formsauthentication,Iis,Cookies,Formsauthentication,我的ASP.NET应用程序中存在验证(身份验证)问题-我使用启用cookie的FormsAuthentication,但是由于安全原因,我被迫使用另一个外部授权源(基于用户名/密码组合,它会为用户提供“sessionID”) 当用户使用其用户名/密码凭据登录时,应用程序工作正常(从而获得sessionID)。然而,由于启用了cookies,登录页面可以被“跳过”(用户被重定向到default.aspx),并且他无法获得正确的sessionID 我的问题是是否有可能检查用户 a) 来自登录页面(因

我的ASP.NET应用程序中存在验证(身份验证)问题-我使用启用cookie的FormsAuthentication,但是由于安全原因,我被迫使用另一个外部授权源(基于用户名/密码组合,它会为用户提供“sessionID”)

当用户使用其用户名/密码凭据登录时,应用程序工作正常(从而获得sessionID)。然而,由于启用了cookies,登录页面可以被“跳过”(用户被重定向到default.aspx),并且他无法获得正确的sessionID

我的问题是是否有可能检查用户

a) 来自登录页面(因此,已重定向到default.aspx)


b) formsAuthentication是基于cookie数据而不是用户名/密码执行的,假设用户登录后重定向到default.aspx页面(页面加载现在包括来自重定向客户端的验证cookie),您将知道它们是否使用global.asax.cs的应用程序\u AuthenticateRequest事件进行了身份验证:


您询问是否确定他们只是以重定向用户身份登录并登录到家中,还是回到家中(或任何其他视图)直接使用浏览器保存的cookie,但我认为这并不重要。如果您在处理登录时存储用户的额外身份验证密钥,可能您应该在AuthenticateRequest事件中为所有受保护页面的访问执行此操作。注意:该事件会被触发很多次(css文件、图像等)。您可能希望忽略除.aspx请求以外的所有请求。

是的,您可以使用“request.urlReferer.ToString”检查用户来自哪个页面,并将其与您的登录页面URL进行比较

protected void Application_AuthenticateRequest(Object oSender, EventArgs eA)
{
    // Wire up authenticated principal with user information.

    if (this.Request.IsAuthenticated == true)
    {
         // do something with this.User.Identity.Name to map to a "sessionid"
    }
}