none
请教:Loginview 不能认识role问题 RRS feed

  • 问题

  • 在网站上设立了Login 页面,在VWD2008里面用ASP.NET Configuration 建立了用户 Admin 属于Administrators。但在Login页面以Admin 登录后发现好像 Loginview 不能将页面转向至预先设置的管理页面,好像LoginView 就没有认识到Admin 这个注册用户已登陆。 

    web.config 里面的设置都做好了。不知是什么问题??

    为找出问题, 将所有有关Login 和 Loginview 的 code 完全拷贝至一个简单测试网站,测试网站中的 Login 和 Loginview 却工作完好,页面成功转换到了管理页面。

    真不知什么问题? 哪位遇到过类似情况?

    多谢
    • 已移动 孟宪会Moderator 2009年5月26日 2:29 ([Loc]From:.NET Framework 一般性问题讨论区)
    2009年5月25日 20:24

答案

  • 您的另一个测试网站可能在整个服务器的设置中设置了默认的 role provider  但是你的机器上没有设置

    理论上最好自己设置   不然会和别人的数据库产生联系 
    紫柔版主的头像真叫萌得一个不行啊。。。。
    2009年5月27日 3:20

全部回复

  • 能把 web.config贴出来看看么  我总觉得是 roleprovider 有问题


    紫柔版主的头像真叫萌得一个不行啊。。。。
    2009年5月26日 1:43
  • 请见下面,这是第一部分。那个测试网站的web.config 也基本按这个复制的,不知问题在哪里?


    <?

     

    xml version="1.0"?>

    <

     

    configuration>
    <
    configSections>
    <
    sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
    <
    sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
    <
    section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>

    <

     

    sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">

    <

     

    section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere"/>

    <

     

    section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>

    <

     

    section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>

    <

     

    section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>

    </

     

    sectionGroup>

    </

     

    sectionGroup>

    </

     

    sectionGroup>

    </

     

    configSections>

    <

     

    appSettings>

    <!--

     

    <add key="MailServer" value="localhost"/> -->

    <

     

    add key="EnableErrorLogEmail" value="true"/>
    <
    add key="ErrorLogEmail" value="willwu2005@gmail.com"/>
    <
    add key="ProductsPerPage" value="3"/>
    <
    add key="SiteName" value="starnet"/>
    </
    appSettings>

     

     

    <

     

    connectionStrings>
    <
    add name="StareadConnection" connectionString="Server=(local)\sqlExpress;Integrated Security = True;Database=Staread" providerName="System.Data.SqlClient"/>
    </
    connectionStrings>

    <

     

    location path="CatalogAdmin.aspx">
    <
    system.web>
    <
    authorization>
    <
    allow roles="Administrators"/>
    <
    deny users="*"/>
    </
    authorization>
    </
    system.web>
    </
    location>

     

     

    <

     

    system.web>
    <
    roleManager enabled="true" />

    <!--

     

    <trace enabled="true" localOnly="true"/>-->
    <
    globalization requestEncoding="gb2312" responseEncoding="gb2312" fileEncoding="gb2312" />
    <!--
    <globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="en-US"/>-->

    <!--

     

    Set compilation debug="true" to insert debugging symbols into the compiled page. Because this affects performance, set this value to true only during development.-->

    <

     

    compilation debug="true">
    <
    assemblies>
    <
    add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    <
    add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    <
    add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    <
    add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    </
    assemblies>
    </
    compilation>

    <!--

     

    The <authentication> section enables configuration of the security authentication mode used by ASP.NET to identify an incoming user. -->

     <

     

    authentication mode="Forms">
    <
    forms name=" Staread Login" loginUrl="Login.aspx" path="/" protection="All" timeout="60" >
    </
    forms>
    </
    authentication>

     

     

    2009年5月26日 2:03
  • 		<roleManager enabled="false">
    			<providers>
    				<clear/>
    				<add connectionStringName="ApplicationServices" applicationName="/" name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
    				<add applicationName="/" name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
    			</providers>
    		</roleManager>
    里面没有 roleprovider 项阿



    紫柔版主的头像真叫萌得一个不行啊。。。。
    2009年5月26日 2:10
  • 一定需要用roleprovider吗? 我另外做的测试网站和上面一样(没有roleprovider),但能登录识别用户,好像没任何问题。请指教,谢!
    2009年5月26日 2:31
  • 您的另一个测试网站可能在整个服务器的设置中设置了默认的 role provider  但是你的机器上没有设置

    理论上最好自己设置   不然会和别人的数据库产生联系 
    紫柔版主的头像真叫萌得一个不行啊。。。。
    2009年5月27日 3:20

  • 我这两个网站都只是在本地电脑上面,系统是Vista。我就同时开了两个VWD2008窗口,分别运行两个网站的。都是用WAT设置的用户。怀疑是不是本来那个网站里的master page里面有什么形成冲突,应该也不会阿。下面是 loginview 所在的 usercotrol 的 code, 测试网站里面的和这是一样。用 tracing 看好像这个LoginView 就根本没有相应用户登录。

    <%

    @ Control Language="C#" AutoEventWireup="true" CodeFile="UserInfo.ascx.cs" Inherits="UserControls_UserInfo" %>

    <

     

    table cellspacing="0" border="0" width= "200px" class = "UserInfoContnt";>
    <tr><td class = "UserInfoHead">User Info</td></tr>
    <asp:LoginView ID= "loginView1" runat = "server">
    <AnonymousTemplate><tr><td><span class = "UserInfoText">You are not logged in.</span></td></tr>
    <tr><td>&nbsp;&raquo;<asp:LoginStatus ID="LoginStatus1" runat="server" CssClass="UserInfoLink" />&nbsp;&raquo; </td></tr> </AnonymousTemplate>

     

    <RoleGroups><asp:RoleGroup Roles="Administrators">
    <ContentTemplate>
    <tr><td><asp:LoginName ID="LoginName2" runat="server" FormatString="You are logged in as <b>{0}</b>."
    CssClass = "UserInfoText" /></td></tr>
    <tr><td>&nbsp;&raquo; <asp:LoginStatus ID="LoginStatus2" runat="server" CssClass="UserInfoLink" />&nbsp;&raquo; </td> </tr> <tr><td>&nbsp;&raquo; <a class ="UserInfoLink" href = "CatalogAdmin.aspx">Catalog Admin </a>&nbsp;&raquo; </td></tr>
    </ContentTemplate>

     

    </asp:RoleGroup>
    </RoleGroups>
    </asp:LoginView>
    </
    table>

    2009年5月27日 4:09