3
我是新來的所有網頁的事情,所以這個問題似乎微不足道,但不是我。實現邏輯是:ASP.NET MVC 3連接到安全的遠程WCF服務
ASP.NET MVC 3 - > WCF服務 - > SQL數據庫
身份驗證和授權的ASP.NET MVC3使用自定義成員資格和角色提供者,因爲所有的日誌中詳細信息存儲在SQL數據庫。 也需要對WCF服務實施授權。它使用與ASP.NET MVC 3相同的憑據。 我已經使用自定義的UsernameValidator實現了WCF安全性的用戶名類型。
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="None" />
<message clientCredentialType="UserName" />
</security>
這是第一次,當用戶登錄到網站,因爲有憑據。但是,在ASP.NET MVC 3上的FormsAuthentication.SetAuthCookie之後,用戶名就是我所擁有的。由於MVC方法由多種控制器組成,因此我必須在每個控制器上創建WCF客戶端實例。但沒有證書,這是沒有意義的。
[Authorize]
public class MyController : Controller
{
private WebServiceClient ServiceClient = new WebServiceClient();
public ActionResult Index(string userName)
{
var model = ServiceClient.GetDataList();
return View(model);
}
}
新實例不使用現有會話。它創建一個帶有空白憑證的新賬戶。
- 是否有創建每個會話的WCF客戶端實例的安全方式?
- 或WCF接受ASP.NET身份驗證的選項?
- 什麼是附加asp.net身份驗證WCF 請求的最佳方式?
這裏有一個看看這篇文章:http://stackoverflow.com/questions/3460435/asp-net-to-wcf-passthrough-security,更是這個職位在這裏:http://stackoverflow.com/questions/3451578/wcf-authentication-using-sql-membership-provider – Nope 2012-02-16 13:16:15
感謝您的鏈接。第一個非常有用。 – Margo 2012-02-17 10:41:25
不錯的一個。很高興你找到了解決方案。 – Nope 2012-02-17 13:25:19