我偶然发现了一个问题,即Account/AccessDenied/在向当前登录用户添加社交媒体身份验证时,应用程序会重定向用户.它似乎在用户第一次登录时工作,然后通过尝试添加另一个身份验证方法,它将用户返回到 Account/AccessDenied?ReturnUrl=%2Fmanage%2Flinklogincallback.
我的猜测是[Authorize]属性出了问题,但只是第二次尝试添加外部认证方法.
ManageController
[Authorize]
public class ManageController : Controller
{
//
// POST: /Manage/LinkLogin
[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult LinkLogin(string provider)
{
// Request a redirect to the external login provider to link a login for the current user
var redirectUrl = Url.Action("LinkLoginCallback", "Manage");
var properties = _signInManager.ConfigureExternalAuthenticationProperties(provider, redirectUrl, _userManager.GetUserId(User));
return Challenge(properties, provider);
}
//
// GET: /Manage/LinkLoginCallback
[HttpGet]
public async Task<ActionResult> LinkLoginCallback()
{
var user = await GetCurrentUserAsync();
if (user == null)
{
return View("Error");
} …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用.NET Core RC2和Visual Studio Code在OSX环境中设置调试.尝试运行调试程序时出现以下错误.
Couldn't find 'project.json' in current directory
Run Code Online (Sandbox Code Playgroud)
目前我已经设置了launch.json(见下文),并在Visual Studio Code中选择了.NET Core Launch(web).由于我的项目位于一个名为Core的文件夹中,并与另外两个文件夹共享空间,因此我的结构如下所示.
结构
- .vscode
------ launch.json
------ tasks.json
- 核心
- Core.Data
- Core.Service
launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": ".NET Core Launch (console)",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
"program": "${workspaceRoot}/Core/bin/Debug/netcoreapp1.0/Core.dll",
"args": [],
"cwd": "${workspaceRoot}/Core",
"stopAtEntry": false
},
{
"name": ".NET Core Launch (web)",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
"program": "${workspaceRoot}/Core/bin/Debug/netcoreapp1.0/Core.dll",
"args": [],
"cwd": "${workspaceRoot}/Core",
"stopAtEntry": false,
"launchBrowser": {
"enabled": true, …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用EF7迁移,并在使用继承建模组织模型时遇到困难.
组织是一个抽象类,有两个继承它的具体类叫做Individual和Company.
我在DbContext中将组织抽象类设置为DbSet并运行迁移.
我在这里关注本教程
显示以下错误:
实体类型"组织"的相应CLR类型不可实例化,并且模型中没有与具体CLR类型对应的派生实体类型.
我该怎么办?
编辑 - 更新代码
组织
public abstract class Organization
{
public Organization()
{
ChildOrganizations = new HashSet<Organization>();
}
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public bool Enabled { get; set; }
public bool PaymentNode { get; set; }
public DateTime Created { get; set; }
public DateTime Updated { get; set; }
// virtual
public virtual ICollection<Organization> ChildOrganizations { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
个人
public class Individual : Organization …Run Code Online (Sandbox Code Playgroud) 我正在当前解决方案中的单独项目中实现代码优先模式.既然我这样做了,我初始化我的连接字符串,DbContext我得到这个奇怪的错误:
无法确定存储版本; 需要有效的存储连接或版本提示.
我正在使用Entity Framework 5.0.0.0,我的其他解决方案项目工作得很好,因为他们使用EDMX文件进行数据库访问,但只有我的代码第一个项目抛出此异常.它是什么,为什么?
我坚持如何解决以下问题.我将首先描述我的应用在一般情况下的外观.
[ASP MVC(Angular App)]
[WEB API 2]
这种情况正在发生:用户访问应用程序并使用位于ASP MVC应用程序中的登录表单进行身份验证并生成cookie.
现在我决定使用AngularJs添加一些使我使用$ resources和Web API 2的功能.但是,这些功能仅在用户获得授权时可用.
问题所在:现在我必须为Web Api 2的每个请求使用一个令牌来访问控制器中的不同方法.这意味着我必须再次登录用户,但这次是通过AngularJs.使用/ token路由.
我该怎么做?我应该带cookie,检查其中的凭据并将其作为身份验证请求发送?我可以在表单身份验证中以相同的方法在Asp MVC应用程序中执行某些操作吗?
请帮帮我,这给了我很多开销.在30分钟内从一个简单的应用程序走到这个.甚至无法理解身份验证中的所有内容.
问候!
我有这个赋值声明这样的方法......
public List<Contact> GetLastContacts([int count = 20])
{
return this._entities.ContactsSet.ToList();
}
Run Code Online (Sandbox Code Playgroud)
我不明白,无法找到有关的信息[int count = 20]作为参数...
有人解释了他们的意思吗?
/最好的祝福!