我正在编写一个需要从Asp.Net WebApi获取一些数据的Angular 4应用程序。我们正在为WebAPI使用Windows身份验证,我想知道如何将用户的Windows身份从我的Angular Application传递到WebApi。我发现了一些涉及将应用程序与MVC应用程序嵌套的示例,但是我会让UI远离MVC。有没有办法做到这一点,而无需添加.net mvc到我的Angular网站?Windows身份验证和Angular 4应用程序
5
A
回答
2
当您从角发送的HTTP请求发送到您的WebAPI你需要使用 RequestOptions({withCredentials =真})
下面是调用API
@Injectable()
export class SecurityService {
private baseUrl = 'http://localhost:64706/api/security/';
private auth: Auth;
private options = new RequestOptions({ withCredentials: true });
constructor(private http: Http) {
console.log('Creating Service');
console.log('Service Pre Http');
this.http.get(this.baseUrl, this.options)
.map((res) => this.extractData<Auth>(res))
.subscribe(newItem => {
console.log('Service Subscribe');
this.auth = newItem;
})
}
public isUser(): Observable<boolean> | boolean {
if (!this.auth) {
return this.http.get(this.baseUrl, this.options)
.map(res => {
this.auth = this.extractData<Auth>(res);
return this.auth.isUser;
});
}
else {
return this.auth.isUser;
}
}
private extractData<T>(res: Response) {
if (res.status < 200 || res.status >= 300) {
throw new Error('Bad response status: ' + res.status);
}
const body = res.json ? res.json() : null;
return <T>(body || {});
}
}
这是一个示例安全服务在auth类
export class Auth {
isAdmin: boolean;
isUser: boolean;
}
如果您使用的是.NET的核心然后在您的WebAPI控制器您现在可以访问 this.User.Identity.IsAuthenticated
注意:如果您正在使用ASP.Net 2.0的核心,那么你需要遵循 “Windows身份验证(HTTP.sys中/ IISIntegration)” 这里段 https://docs.microsoft.com/en-us/aspnet/core/migration/1x-to-2x/identity-2x
你还必须记住启用Windows主机上的身份验证,例如IIS或IISExpress。如果你身边“预检”,那么你也将需要启用匿名访问
相关问题
- 1. 如何在MVC 4应用程序中混合使用Azure AD身份验证和Windows身份验证?
- 2. ExtJS 4应用程序登录和身份验证和权利
- 3. ASP.NET应用程序未使用Windows身份验证进行身份验证
- 4. windows身份验证和iOS7
- 5. NancyFx和Windows身份验证
- 6. Asp.net和Windows身份验证
- 7. Angular 4&Passport API身份验证
- 8. DNN和Windows身份验证
- 9. iOS应用程序和Windows身份验证
- 10. ASP.NET核心Windows身份验证和应用程序角色
- 11. IIS应用程序池和SQL服务器Windows身份验证
- 12. 如何在Windows应用程序中使用Windows身份验证?
- 13. 如何管理Angular 4应用程序和应用程序之间的身份验证(Spring Boot/security)?
- 14. Firefox不显示身份验证提示和Windows身份验证
- 15. wcf和windows身份验证
- 16. R和Windows身份验证
- 17. 如何在Angular JS应用程序中处理身份验证
- 18. Ionic2/Angular 2 - Wordpress从应用程序生成cookie身份验证
- 19. 应用程序身份验证密钥
- 20. Firebase&Backbone:应用程序身份验证
- 21. Twitterizer Web应用程序身份验证
- 22. 身份验证facebook应用程序
- 23. Google应用程序域(身份验证)
- 24. 谷歌应用程序身份验证
- 25. 应用程序身份验证刷新
- 26. SSL身份验证Rails应用程序
- 27. Windows身份验证和web.config renaimg
- 28. '以其他用户身份登录'MVC 4 Windows身份验证
- 29. Windows身份验证MVC 4内联网
- 30. Angular 5身份验证
也许该链接会帮助你的错误 https://docs.microsoft.com/en-us/aspnet/core/security/cors
:
你可能需要在这里启用CORS的文档是好的:https://stackoverflow.com/questions/41337145/how-can-i-get-and-post-an-action-using-angular-2-in-mvc/41341743#41341743 –
从我能看到的是他们正在使用常规认证。我想使用Windows身份验证 – AlexanderM
@AlexanderM正确回答了这个问题吗?如果是这样,请标记答案。 – RayLoveless