C# 具有身份验证的MVC应用程序中的Web API基本验证
因此,我有一个C# 具有身份验证的MVC应用程序中的Web API基本验证,c#,authentication,asp.net-web-api,asp.net-mvc-5,C#,Authentication,Asp.net Web Api,Asp.net Mvc 5,因此,我有一个C#MVC应用程序,使用Identity进行身份验证。我现在需要通过webapi向我的一些客户公开一些东西。而不是构建单独的应用程序、项目和部署。。。我只是在现有项目中添加了一个API控制器。为了让我的客户端保持简单,我决定使用Basic Auth,而不是强制我的客户端使用SSL连接到我的API 我遵循了这个非常有用的教程,在我的API中实现了Basic Auth: 问题是,他们的指令接管了整个应用程序的Auth 我需要我的MVC应用程序继续使用它当前使用的Identity Au
C#MVC
应用程序,使用Identity
进行身份验证。我现在需要通过webapi
向我的一些客户公开一些东西。而不是构建单独的应用程序、项目和部署。。。我只是在现有项目中添加了一个API控制器。为了让我的客户端保持简单,我决定使用Basic Auth
,而不是强制我的客户端使用SSL
连接到我的API
我遵循了这个非常有用的教程,在我的API中实现了Basic Auth
:
问题是,他们的指令接管了整个应用程序的Auth
我需要我的MVC
应用程序继续使用它当前使用的Identity Auth
,并希望滚动我自己的自定义属性(如[APIAuthorize]
),以便它只应用于我的API控制器
我可能会四处闯荡,并尝试让它工作,但由于这是关于安全,我决定寻求一些专业帮助,如何最好地实现这一点。具体来说,我需要知道1)在我的Global.asax中我应该做什么(如果有的话),因为上面的URL建议我这样做:
protected void Application_Start()
{
GlobalConfiguration.Configuration.MessageHandlers
.Add(new BasicAuthMessageHandler(){
PrincipalProvider = new DummyPrincipalProvider()
});
//...
}
但同样,这将接管整个应用程序的身份验证2)我需要在自定义身份验证属性中执行哪些操作才能无缝完成所有这些工作
当然,如果有更好的方法来完成这一切(不需要创建单独的应用程序或增加客户端的实现难度),那么我会洗耳恭听。我使用一个过滤器属性来修饰我想向简单身份验证公开的操作。我不记得我从哪里得到这个代码(可能是stackoverflow,我只是没有链接,所以我不能为它索赔)
那么我就这样用它
[BasicHttpAuthorize]
public HttpResponseMessage MyExposedSimpleAuthAction()
我对这一领域完全陌生,我试图了解这一点。您是否有对实现此过滤器的API的示例调用?…它是否只传递给用户并传递纯文本或以某种方式进行编码?用户名和密码如何存储在configuration manager中?在您的示例中,BasicHttpAuthorize是独立工作还是需要更多的代码?
[BasicHttpAuthorize]
public HttpResponseMessage MyExposedSimpleAuthAction()