【问题标题】:How to implement cookies less form authentication when we create our own cookie创建自己的 cookie 时如何实现 cookie 少形式认证
【发布时间】:2011-09-29 04:37:17
【问题描述】:

我正在实施表单身份验证,例如(我需要根据一些不是来自活动目录或数据库的条件创建票证)

FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,
        "userName",
        DateTime.Now,
        DateTime.Now.AddMinutes(30), // value of time out property
        false, // Value of IsPersistent property
        String.Empty,
        FormsAuthentication.FormsCookiePath);

string encryptedTicket = FormsAuthentication.Encrypt(ticket);
HttpCookie authCookie = new HttpCookie(
                            FormsAuthentication.FormsCookieName, 
                            encryptedTicket);

authCookie.Secure = true;
Response.Cookies.Add(authCookie);

 and my web.config 


<system.web>
  <authentication mode="Forms">
    <forms loginUrl="Login.aspx"
           protection="All"
           timeout="30"
           name="test" 
           path="/"
           requireSSL="false"
           slidingExpiration="true"
          cookieless="UseDeviceProfile"
           enableCrossAppRedirects="false" />
  </authentication>
</system.web>

如果启用了浏览器 cookie,则此实现工作正常。虽然禁用 cookie 时它不起作用(我试过 Cookieless="useuri" 但它没有帮助)

你们能告诉我在这种情况下我应该如何实现无 cookie 表单身份验证

我想将 uri 用于身份验证 cookie 或任何其他更好的解决方案?

【问题讨论】:

  • 那么您想在无 cookie 的环境中使用 cookie 吗? :S
  • 将其存储在会话中,它是一个 cookie,但 cookie 驻留在 Web 服务器上
  • 我想使用 uri 但它不起作用,因为我认为我正在将 cookie 添加到响应对象 @Ranhiru
  • @CBRRacer:它是一个 cookie :) 数据驻留在 Web 服务器中,但必须启用 Web 服务器唯一标识每个用户的 cookie。否则,无 cookie 意味着将会话 ID 嵌入到 URL 中。看看tugberk给出的答案。
  • @RanhiruCooray 实际上这就是我所说的,但我没有指定它的 URL 方面。

标签: asp.net c#-4.0 forms-authentication security


【解决方案1】:

对于无 cookie 浏览器,asp.net 提供会话 ID 以嵌入 URL;

请看下面的问题:

What will happen to asp.net membership if the client browser is not accepting cookies

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-17
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 2017-08-13
    相关资源
    最近更新 更多