我已经制作了具有自定义表单身份验证的asp.net mvc应用程序。 除此之外,它需要从sharepoint验证用户(换句话说,我需要将用户从sharepoint传递到asp mvc应用程序)。 SP和asp mvc应用程序位于同一个域中,SP使用AD对用户进行身份验证。我搜索过Google /所以到目前为止我还没有得到任何好的解决方案。
注意:我需要将用户从sp传递到asp mvc应用程序的安全方式...我看到几个传递用户思想URL参数的示例,我认为这不是安全的事情。
答案 0 :(得分:2)
为什么不使用url paramenter?
public class SecureToken {
public Int32 UserId {get;set;}
public DateTime DateCreated {get;set;}
public DateTime ValidTill {get;set;}
public SecureToken (Int32 userId) {
this.UserId = userId;
this.DateCreated = DateTime.Now;
this.ValidTill = this.DateCreated.AddMinutes(0.5);
}
public String ToEncryptedToken() {
// Do serialization,
// Then encrypt with, for example TrippleDES
// Escape for url
// return the string arguement for url
}
public static SecureToken Decrypt(String input) {
// If the DateCreated == ValidTill - 30 seconds
// If validTill > Now
// If decryptable
// Return deserialized token
// else throw Authentication error.
}
}
这里的要点是URL中的令牌仅可存活30秒。 作为一个附加参数,您可以在序列化期间使用HMAC-SHA 256并检查天气这确实是您的令牌。
答案 1 :(得分:0)
您可以为自定义表单身份验证提供程序配置SP,该提供程序又会对域进行验证 - 然后您在应用程序之间共享表单身份验证令牌,这非常简单: