我正在使用带有Owin外部登录的MVC.
Owin不会像弹出窗口一样打开登录.它将页面重定向到该登录提供程序.
例如,如果我想通过Facebook登录,它将不会在弹出窗口中打开Facebook登录,而是重定向到Facebook登录页面.
到目前为止,通过我的研发,我发现我必须为Facebook创建一个身份验证提供程序.因此,创建一个继承自FacebookAuthenticationProvider的类.在此类中,重写"ApplyRedirect"方法.
这是我的示例代码:
public class FacebookProvider : FacebookAuthenticationProvider
{
public override void ApplyRedirect(FacebookApplyRedirectContext context)
{
context.Response.Redirect(context.RedirectUri + "&display=popup");
}
}
Run Code Online (Sandbox Code Playgroud)
我在我的startup.auth.cs类中连接此代码,如下所示:
app.UseFacebookAuthentication(new FacebookAuthenticationOptions
{
Provider = new FacebookProvider(),
AppId = "xxxxxxxxxx",
AppSecret = "647e05af9188a8a3ccd0793aae9a846f",
Scope = { "email" },
SignInAsAuthenticationType = Microsoft.Owin.Security.AppBuilderSecurityExtensions.GetDefaultSignInAsAuthenticationType(app)
});
Run Code Online (Sandbox Code Playgroud)
我的_ExternalLoginListPartial.cshtml是这样的:
@using Microsoft.Owin.Security
<h4>Use another service to log in.</h4>
<hr />
@{
var loginProviders = Context.GetOwinContext().Authentication.GetExternalAuthenticationTypes();
if (loginProviders.Count() == 0) {
<div>
<p>
There are no external authentication services configured. See <a href="http://go.microsoft.com/fwlink/?LinkId=403804">this article</a>
for …Run Code Online (Sandbox Code Playgroud)在VS2013中构建代码时,我的计算机崩溃了.重新启动后我运行我的代码而没有调试它运行正常,但在调试模式下,我得到以下异常:
无法加载文件或程序集"Antlr3.Runtime"或其依赖项之一.参数不正确.(HRESULT异常:0x80070057(E_INVALIDARG))
描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.
异常详细信息:System.IO.FileLoadException:无法加载文件或程序集"Antlr3.Runtime"或其依赖项之一.参数不正确.(HRESULT异常:0x80070057(E_INVALIDARG))
来源错误:
在执行当前Web请求期间生成了未处理的异常.可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息.
程序集加载跟踪:以下信息有助于确定无法加载程序集"Antlr3.Runtime"的原因.
===预绑定状态信息=== LOG:DisplayName = Antlr3.Runtime(Partial)WRN:为程序集提供了部分绑定信息:WRN:程序集名称:Antlr3.Runtime | 域ID:2 WRN:仅提供部分程序集显示名称时发生部分绑定.警告:这可能导致装订器装入错误的装配.警告:建议为程序集提供完全指定的文本标识,即WRN:由简单名称,版本,区域性和公钥标记组成.警告:有关此问题的更多信息和常见解决方案,请参阅白皮书http://go.microsoft.com/fwlink/?LinkId=109270.日志:Appbase = file:/// D:/qqq/qqq.Admin/日志:初始PrivatePath = D:\ qqq\qqq.Admin\bin
调用程序集:(未知).
日志:此绑定在默认加载上下文中启动.日志:使用应用程序配置文件:D:\ qqq\qqq.Admin\web.config日志:使用主机配置文件:C:\ Users\DevBatch\Documents\IISExpress\config\aspnet.config日志:使用C中的机器配置文件:\ WINDOWS\Microsoft.NET \框架\ v4.0.30319\CONFIG\machine.config中.日志:此时策略未应用于引用(私有,自定义,部分或基于位置的程序集绑定).日志:尝试下载新的URL文件:/// C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/051d9c22/9e0bcfb5/Antlr3.Runtime.DLL.日志:尝试下载新的URL文件:/// C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/051d9c22/9e0bcfb5/Antlr3.Runtime/Antlr3.Runtime.DLL.日志:尝试下载新的URL文件:/// D:/qqq/qqq.Admin/bin/Antlr3.Runtime.DLL.日志:使用应用程序配置文件:D:\ qqq\qqq.Admin\web.config日志:使用主机配置文件:C:\ Users\DevBatch\Documents\IISExpress\config\aspnet.config日志:使用C中的机器配置文件:\ WINDOWS\Microsoft.NET \框架\ v4.0.30319\CONFIG\machine.config中.日志:策略后引用:Antlr3.Runtime,Version = 3.3.1.7705,Culture = neutral,PublicKeyToken = 31bf3856ad364e35错误:无法完成程序集的设置(hr = 0x80070057).探测终止.Culture = neutral,PublicKeyToken = 31bf3856ad364e35错误:无法完成程序集的设置(hr = 0x80070057).探测终止.Culture = neutral,PublicKeyToken = 31bf3856ad364e35错误:无法完成程序集的设置(hr = 0x80070057).探测终止.
堆栈跟踪:
[FileLoadException:无法加载文件或程序集'Antlr3.Runtime'或其依赖项之一.参数不正确.(HRESULT异常:0x80070057(E_INVALIDARG))]
[FileLoadException:无法加载文件或程序集'Antlr3.Runtime,Version = 3.3.1.7705,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一.参数不正确.(来自HRESULT的异常:0x80070057(E_INVALIDARG))] System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName,String codeBase,Evidence assemblySecurity,RuntimeAssembly locationHint,StackCrawlMark&stackMark,IntPtr pPrivHostBinder,Boolean throwOnFileNotFound,Boolean forIntrospection,Boolean suppressSecurityChecks)+0 System. …
我们有一个ASP.Net 4.5.2应用程序,使用来自nuget和Entity Framework 5的最新Oracle.ManagedDataAccess.dll.
文件版本:4.121.1.0
产品版本:4.121.1.20131211
部署到生产环境(Windows Server 2008 r2 x64)时,一切正常,直到我们需要分布式事务.
Oracle文档声明我们需要提供Oracle.ManagedDataAccessDTC.dll(相同版本,针对特定平台x64),以使分布式事务正常工作.
无法加载文件或程序集"Oracle.ManagedDataAccessDTC.DLL"或其依赖项之一.指定的模块无法找到.
描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.
异常详细信息:System.IO.FileNotFoundException:无法加载文件或程序集"Oracle.ManagedDataAccessDTC.DLL"或其依赖项之一.指定的模块无法找到.
堆栈跟踪:
[FileNotFoundException:无法加载文件或程序集'Oracle.ManagedDataAccessDTC,Version = 4.121.1.0,Culture = neutral,PublicKeyToken = 89b483f429c47342'或其依赖项之一.]