我在MVC应用程序中的静态类中有一个静态方法返回用户声明,当我直接访问此应用程序的url时,我得到了这些值,但是当我使用Javascript从另一个应用程序访问应用程序URL时,它没有返回什么。我没有得到任何错误。它返回空的结果。我也没有得到CORS问题。我怀疑它是与身份验证相关的事情。传递用户凭据,两个站点都在相同的ADFS配置下
public static UserDetails GetUserDetails()
{
var userdetails = new UserDetails();
var objClaims = ((ClaimsIdentity)Thread.CurrentPrincipal.Identity).Claims;
foreach(var c in objClaims)
{
else if (c.Type == ConstantsHelper.emailAddress)
{
userdetails.Email = c.Value;
}
else if (c.Type == ConstantsHelper.userName)
{
userdetails.UserName = c.Value;
}
else if (c.Type == ConstantsHelper.shortName)
{
userdetails.ShortName = c.Value;
}
}
return userdetails;
}
从其他应用程序访问它的代码。
function GetLoggedInUsermethod() {
var url = GetLoggedInUser;
$.ajax({
type: "GET",
url: url,
crossDomain: true,
success: function (json) {
},
error: function (e) {
}
});
}
答案 0 :(得分:0)
如果调用应用程序托管在不同的域中(不同的端口将符合不同的域),则可能需要将Access-Control-Allow-Origin标头添加到响应中,并将值设置为调用应用程序&#39 ; s域名用于成功调用。
更多详情here。