2011-10-04 19 views
1

是否可以通過任何方式連接ACS規則以在使用Live ID時使用$(InputValue)從ACS返回/傳遞用戶的電子郵件地址?使用LiveID獲取來自ACS的輸入電子郵件地址

我使用被動認證和重定向出來到Live ID,但我不知道是否有什麼辦法可以從ACS線了一個規則,可能會得到inputValue將電子郵件地址

從我所看到的,我認爲這當然可以通過託管一個登錄頁面,但我希望能夠以其他方式從ACS獲得它,如果可能的話。

(我應該補充說,目前的情況是實現與用戶身份和角色後端數據庫的現有ASP.Net應用程序的頂部Live ID的認證。)

與當前場景的額外信息:當前的場景是一個擁有自己的本土數據庫認證安全模型的現有系統。我嘗試了各種方法來查看是否可以攔截用戶的電子郵件地址,並最終確定可用的方法是不可取的(在此特定情況下)。

在這種情況下,過渡到Live ID身份驗證的唯一合適和安全模式是在您的應用程序周圍構建一個註冊系統,該系統允許現有用戶註冊他們的LiveID,然後將它們帶回您的應用程序以捕獲其Live ID'nameidentifier'。

但是,由於任何未知用戶都可以這樣做,因此有必要通過電子郵件或某種機制驗證正在使用的Live ID電子郵件地址的臨時身份驗證步驟。

我希望這對某人有幫助。

回答

0

不幸的是,在Windows Live使用ACS時無法獲得任何可識別的聲明。這是由於Windows Live用戶隱私政策。

使用Windows Live時,您只會得到一個對您的依賴方應用程序唯一的ID聲明。

+0

似乎是Windows Live的內置STS的一個奇怪的限制。構建Live的自定義STS並不需要太多工作,它使用服務器端連接API來附加其他聲明,包括用戶的全名+電子郵件地址:http://msdn.microsoft.com/zh-cn/library/hh243649的.aspx。 – Nariman

+0

這是不正確的。信息可以實現(請參閱@Nariman的答案),但不能直接從令牌訪問 – user

1

可能的,但它需要一個定義STS一些代碼:

https://gist.github.com/1867792

代碼不建立和依賴性不包括...但它很大程度上是基於關閉早期thinktecture起始站點移植到MVC4上面的變化。

相關問題