2011-04-29 61 views
0

我已經實現了我自己的自定義角色管理器對象。當我使用Visual Studio版本的IIS運行我的Web應用程序時,它工作正常。我可以看到用戶名,我可以鑽入角色管理器類,看看它在做什麼。當我使用IIS 7調試應用程序時,HttpContext.Current.User.Identity.Name爲空,並且在確定我的用戶具有哪些角色時,它不使用我的Role Manager類。我檢查過我的所有dll都在bin目錄中。使用Visual Studio 2010的ASP.NET MVC 2.通過web.config更改角色管理器

我猜測問題出在IIS 7上。我需要在IIS 7上進行配置以使其工作並使其用於角色管理器?

以下是設置角色管理器的web.config片段。

<membership> 
    <providers> 
    <clear /> 
    </providers> 
</membership> 
<roleManager defaultProvider="HyperionRoleProvider" enabled="true"> 
    <providers> 
    <clear /> 
    <add name="HyperionRoleProvider" type="Census.BUD.Common.HyperionRoleProvider" applicationName="/" /> 
    </providers> 
</roleManager> 

回答

0

來源:

http://learn.iis.net/page.aspx/528/how-to-use-the-sample-read-only-xml-membership-and-role-providers-with-iis-70/

「這些樣本非常適合與IIS 7.0使用演示或測試的網站,但由於IIS 7.0是寫他們不工作原始指令允許您將示例成員資格/角色提供程序部署到Web站點的App_Code文件夾中,但IIS 7.0要求在提供程序之前在全局程序集緩存(GAC)中註冊提供程序可以部署,考慮到這一點,以下步驟將引導您完成編譯和部署g開發系統上的只讀XML提供程序。「

確保您的程序集是在GAC

+0

我現在的問題是,我使用的是Windows 2008的和我編譯好的基礎上的文章,但我看不到我的組件在c:\ windows \ assembly目錄。 Windows Server 2008會對組件做些什麼嗎? – Richard 2011-04-29 19:00:43

+0

你需要把你的角色提供者所在的程序集(我將該提供程序代碼分離出一個單獨的庫),然後將它拖放到c:\ windows \ assembly中(單擊開始,運行,然後在c: \ windows \ assembly作爲最簡單的方法)。爲了將其放入GAC,您還必須確保您的圖書館已簽名,以及您可以在您的項目資產上進行哪些簽名。 – 2011-04-29 22:46:41

+0

然後您至少可以輕鬆測試它 - 它可能會導致您的gacutil命令失敗(儘管您應該在編譯項目時看到這一點) – 2011-04-29 23:09:17

相關問題