2

我們正在嘗試爲ASP.NET Intranet應用程序設置ActiveDirectoryMemebershipProvider,該應用程序在瀏覽器中訪問它時會自動將用戶簽入應用程序。ActiveDirectoryMembershipProvider不接受FQDN

但是,瀏覽器正在向服務器發送FQDN(MYDOMAIN \ some.user),並且ActiveDirectoryMemebershipProvider似乎無法根據FQDN查找用戶。然而,當我們從代碼手動測試提供者時,我們發現如果我們只嘗試用戶名(some.user),提供者似乎能夠找到用戶。

是否有任何設置或我們可以用來讓提供者跳過瀏覽器發送的域名部分?

回答

0

嘗試設置atttributeMapUsername,如果你沒有,並讓我知道這是否適合你。當我沒有設置這個時,我不得不以[email protected]格式指定我的用戶。

我的web.config

<add name="MyADMembershipProvider" 
     type="System.Web.Security.ActiveDirectoryMembershipProvider" connectionStringName="ADConnectionString" 
     attributeMapUsername="sAMAccountName" 
     enablePasswordReset="false" maxInvalidPasswordAttempts="1" passwordAttemptWindow="15" 
     passwordAnswerAttemptLockoutDuration="1" minRequiredNonalphanumericCharacters="0" attributeMapEmail="mail" 
     /> 
+0

嗨,謝謝你的答覆。 我們正在嘗試使用自動登錄,瀏覽器將用戶名發送到服務器。據我們所知,IE會以MYDOMAIN \ my.username格式發送用戶名。這似乎沒有被ActiveDirectoryMembershipProvider接受。至少它沒有找到任何用戶。我嘗試將attributeMapUsername設置爲sAMAccountName,但它似乎沒有多大幫助 – flalar 2010-08-03 07:28:30

+0

我可以看到您的代碼嗎?您是否使用IIS的身份驗證設置?您可以選擇Windows用戶身份驗證並禁用匿名用戶,這是我們有時候在這裏執行的操作。藉此,您可以從CGI變量中提取用戶登錄信息,根據需要對其進行格式化,然後通過身份驗證例程運行它。 – ryan 2010-08-03 11:04:27

0

在IIS,請訪問網站的屬性,並設置默認域 「\」。不知道你使用的是哪個版本的IIS,所以如果IIS將你的版本重置了,另一種方法是簡單地預先添加域部分以便它自動添加?

這是一個自定義的應用您使用的產品?試圖理解爲什麼它是從代碼而不是從應用程序工作。如果您編寫應用程序,我假設您可以將其更改爲模仿您的代碼。如果你沒有編寫應用程序,它是什麼?應用程序(例如OWA或SharePoint)可能會以自定義的方式完成此操作。