当前位置: 代码迷 >> ASP.NET >> 用NET自带的FORMS验证,在小弟我成功了之后,Identity.Name 显示的是小弟我的机器名,不是登陆用户名,这是如何了
  详细解决方案

用NET自带的FORMS验证,在小弟我成功了之后,Identity.Name 显示的是小弟我的机器名,不是登陆用户名,这是如何了

热度:7067   发布时间:2013-02-25 00:00:00.0
用NET自带的FORMS验证,在我成功了之后,Identity.Name 显示的是我的机器名,不是登陆用户名,这是怎么了?
C# code
        <!--    “protection”的值:        All:指定应用程序同时使用数据验证和加密来保护 Cookie。        None:对Cookie禁用加密和验证。        Encryption:对Cookie进行加密,但不对该 Cookie 执行数据验证。以此方式使用的 Cookie 可能会受到精选的纯文本的攻击。        Validation:指定验证方案验证已加密的 Cookie 的内容在转换中是否未被改变。    -->        <authentication mode="None">            <forms name=".pacific" protection="Encryption" path="/" timeout="30" loginUrl="Admins/login.aspx"/>        </authentication>        <!--  会话状态设置          默认情况下,ASP.NET 使用 Cookie 来标识哪些请求属于特定的会话。          如果 Cookie 不可用,则可以通过将会话标识符添加到 URL 来跟踪会话。         若要禁用 Cookie,请设置 sessionState cookieless="true"。    -->    <sessionState             mode="InProc"            stateConnectionString="tcpip=127.0.0.1:42424"            sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"            cookieless="false"             timeout="20"     />

::::
::::
::::
我在显示<%= Page.User.Identity.Name %>的时候,出现的是我的机器名,而不是登陆名,这是那里错误了?

------解决方案--------------------------------------------------------
User.Identity.Name将得到,验证通过(RedirectFromLoginPage 或SetAuthCookie)时输入的参数值,要看你登陆的时候传入的是什么.
------解决方案--------------------------------------------------------
<authentication mode="Forms">
<!--<forms name="es" path="/" loginUrl="login.aspx" protection="All" timeout="180" />-->
</authentication>
------解决方案--------------------------------------------------------
你登陆的时候登陆名传进去了吗?
FormsAuthentication.SetAuthCookie(登陆名, false);
------解决方案--------------------------------------------------------
C# code
<authentication mode="forms"/>
  相关解决方案