我搜索了Google和StackOverflow试图找到解决方案,但它们似乎都与ASP.NET等有关.
我通常在我的服务器上运行Linux,但是对于这个客户端,我使用Windows与IIS 7.5(和Plesk 10).这就是为什么我对IIS和web.config文件略有不熟悉的原因.在.htaccess文件中,您可以使用重写条件来检测协议是否为HTTPS并相应地重定向.有没有一种简单的方法可以使用web.config文件实现这一点,甚至使用我安装的" URL Rewrite "模块?
我没有使用ASP.NET的经验,所以如果这涉及到解决方案,那么请包括如何实现的明确步骤.
我使用web.config而不是 PHP 执行此操作的原因是我想在站点内的所有资产上强制使用HTTPS.
我已经阅读了之前关于使用RequireHttpsAttribute保护单个控制器的帖子:
ASP.NET MVC RequireHttps仅适用于生产
但有没有办法将其应用到整个网站?由于我的主机(discountasp.net)我不能使用"RequireSSL IIS"设置.
当我使用开箱即用的ASP.NET mvc5帐户控制器登录Facebook时,我有时会得到一个空引用异常.
这是节食方法:
public async Task<ActionResult> ExternalLoginCallback(string returnUrl)
{
// Crashes on this line
var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync();
if (loginInfo == null)
{
return RedirectToAction("Login");
}
}
Run Code Online (Sandbox Code Playgroud)
我不知道如何调试这个.一个断点和浸泡虽然代码没有帮助...我最终看到我的Error.cshtml页面.此时的错误是一个简单的对象引用null异常,内部异常也是null.
编辑
我通过Nuget更新到最新的Owins,没有变化.
编辑2
看看小提琴手,Facebook正在回归200,看起来像json一样正确.
编辑3
这么奇怪.我正在测试3个Facebook帐户.两个帐户工作正常,1个没有.失败者返回200.我已经删除了Facebook中的应用程序引用..我得到一个应用程序确认窗口,我点击确定,它死了......太奇怪了.
我正在寻找帮助创建具有自定义用户名/密码身份验证的Web API.
我有自己的数据库来验证用户,我不想使用Windows身份验证.
我希望能够使用类似的属性来装饰我的web api调用[Authorize],这样在没有登录的情况下进行的调用将会失败.
我不想将凭证作为参数传递给每个方法.
该API主要由使用Xamarin PCL的移动设备使用.
Web API必须使用SSL.
这似乎是一个简单的设置,但我的谷歌搜索没有透露任何超级有用的命中.
理想情况下,我想要一个Login控制器,它授权用户并允许后续的方法调用.
有人可以提供基本的例子或一些好的阅读材料吗?
我使用OWIN Middleware在我的ASP.NET MVC应用程序中设置了OpenID Connect身份验证.
正如此Fiddler输出所示,一旦通过Azure OpenID Connect成功登录,浏览器就会不断在我的site.azurewebsites.net和login.windows.net之间来回循环.

我确保以下密钥正确匹配Azure AD信息
<add key="ida:AADInstance" value="https://login.windows.net/{0}" />
<add key="ida:Tenant" value="******.onmicrosoft.com" />
<add key="ida:ClientId" value="*******" />
<add key="ida:PostLogoutRedirectUri" value="*********" />
Run Code Online (Sandbox Code Playgroud)
我的Start.cs代码如下
private static string clientId = ConfigurationManager.AppSettings["ida:ClientId"];
private static string aadInstance = ConfigurationManager.AppSettings["ida:AADInstance"];
private static string tenant = ConfigurationManager.AppSettings["ida:Tenant"];
private static string postLogoutRedirectUri = ConfigurationManager.AppSettings["ida:PostLogoutRedirectUri"];
private string authority = String.Format(CultureInfo.InvariantCulture, aadInstance, tenant);
IAuthorizationService authorizationService = new AuthorizationService();
public void ConfigureAuth(IAppBuilder app)
{
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
app.UseCookieAuthentication(new CookieAuthenticationOptions()
{
ExpireTimeSpan =TimeSpan.FromMinutes(15)
});
app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions
{
ClientId = …Run Code Online (Sandbox Code Playgroud) 我正在开发一个项目,其中有一个页面需要使用SSL证书.本网站中的所有链接都使用https而不是http,但是如果用户可以直接导航到页面,我希望页面的http版本重定向到自己,但使用https.
我可以在page_load事件中执行Response.Redirect.我可以编写将更新location.href的javascript,这将导致回发.我相信有更多的方法可以给这只猫皮肤.
我的问题是,IIS 6或7上的ASP.NET站点将http页面重定向到https的最佳做法是什么?是否有最佳实践或所有替代方案均等?
我一直在努力为ASP.Net应用程序重定向到SSL页面代码一段时间.我还没有找到一个好的解决方案.问题是,如果我在localhost上,我希望禁用代码,例如我在调试或编码时,但我无法使其工作.另一个问题是它必须重定向到另一个URL,因此http://www.xx.com应该重定向到https://Secure.xxx.com.有任何想法吗?