代码之家  ›  专栏  ›  技术社区  ›  Andreas Grech

ASP.NET中的会话管理和使用OpenID链接用户帐户

  •  3
  • Andreas Grech  · 技术社区  · 16 年前

    DotNetOpenAuth 要创建ASP.NET(C#)网站,请使用OpenID,而不是用于用户和会话处理的常规登录密码例程。

    到目前为止,我已经添加了 DotNetOpenAuth.dll

    <rp:OpenIdLogin ID="OpenIdLogin1" runat="server" />
    

    当我运行这个页面时,我输入一个有效的myopenid url,然后网站重定向到myopenid页面,在那里输入我的密码,一旦成功,它就会返回到我的myopenid页面 default.aspx ,原因如下: web.config :

    <authentication mode="Forms">
        <forms defaultUrl="/Default.aspx" loginUrl="~/Login.aspx"/>
    </authentication> 
    

    既然用户已“登录”,如何处理我的会话?目前,我不知道如何检查会话是否仍处于活动状态,或者如何终止会话。

    我的基本问题是,一旦用户通过OpenID身份验证,如何管理会话?


    [更新]

    我现在使用以下方法检查身份验证: HttpContext.Current.User ,然后我可以检查用户是否通过会话进行了身份验证。

    现在有没有一种可能的方法可以将存储在数据库中的用户详细信息与openid帐户“链接”起来?

    1 回复  |  直到 16 年前
        1
  •  3
  •   Andrew Arnott    16 年前

    使用 OpenIdLogin 从ASP.NET的角度来看,控件(默认情况下)与用户名+密码登录没有区别。正如你所发现的 HttpContext.Current.User Page.User 财产是一种更方便的手段。

    <authorization> 在web.config文件中添加标记,以强制用户在访问某些页面或页面目录之前登录。

    OpenIdLogin 自动为FormsAuthentication分配用户名值。因此,您可以根据的值在数据库中检索或存储用户详细信息 HttpContext.Current.User.Identity.Name ,这将是每个用户的可靠和经验证的独特价值。

    推荐文章