ObjectContext实例已在InRequestScope中处理!
我在网上尝试了几个小时试图解决问题.
ObjectContext实例已被释放,不能再用于需要连接的操作.
我发现了几个文章和帖子中包含了同样的问题这个,这个,这个和这个
我尝试了所有方法,但总是发生错误.
上下文
public class BindSolutionContext : DbContext
{
public DbSet<Project> Projects { get; set; }
public DbSet<User> Users { get; set; }
public DbSet<Role> Roles { get; set; }
public DbSet<Address> Addresses { get; set; }
public DbSet<ProjectImage> ProjectImages { get; set; }
public BindSolutionContext()
: base("name=Data")
{
Database.SetInitializer(new DropCreateDatabaseIfModelChanges<BindSolutionContext>());
}
}
Run Code Online (Sandbox Code Playgroud)
Ninject
kernel.Bind<BindSolutionContext>().ToSelf().InRequestScope();
kernel.Bind<IProjectRepository>().To<ProjectRepository>().InRequestScope();
kernel.Bind<IUserRepository>().To<UserRepository>().InRequestScope();
kernel.Bind<IRoleRepository>().To<RoleRepository>().InRequestScope();
kernel.Bind<IAddressRepository>().To<AddressRepository>().InRequestScope();
kernel.Bind<IProjectImageRepository>().To<ProjectImageRepository>().InRequestScope();
Run Code Online (Sandbox Code Playgroud)
知识库
public class ProjectRepository : IProjectRepository
{
private readonly …
Run Code Online (Sandbox Code Playgroud) dependency-injection ninject custom-membershipprovider asp.net-mvc-3 dbcontext
我希望我的站点上的管理员能够锁定成员,但默认mvc成员身份的IsLockedOut()是readonly.我读到我需要创建一个自定义成员资格提供程序,但我不完全确定这意味着什么.我是否需要使用membershipUser属性创建新模型?如果可能,我不想在数据库中创建新表.
这是我的lockUser方法的代码:
public static void LockUser(this MembershipUser user)
{
using (var db = new MovieContext())
{
Guid userid = (Guid)user.ProviderUserKey;
MembershipUser member = Membership.GetUser(userid);
member.IsLockedOut = true;
member.LastLockoutDate = DateTime.Now;
db.SaveChanges();
}
}
Run Code Online (Sandbox Code Playgroud) c# asp.net-mvc asp.net-membership custom-membershipprovider asp.net-mvc-3
如何在没有登录控制的情况下使用表单身份验证.我不想在我的站点中使用asp.net登录控件.但是我必须实现表单身份验证并验证我的数据库中的用户.
asp.net forms-authentication asp.net-membership custom-membershipprovider asp.net-authentication
根据这篇文章描述custom-membership-provider-with-repository-injection
我实现自定义成员资格提供注入.
定制会员提供商
using Ninject;
public class CustomMembershipProvider : MembershipProvider
{
[Inject]
public IUserRepository UserRepository { get; set; }
[...]
Run Code Online (Sandbox Code Playgroud)
自定义角色提供者
using Ninject;
public class CustomRoleProvider : RoleProvider
{
[Inject]
public IUserRoleRepository UserRoleRepository { get; set; }
[...]
Run Code Online (Sandbox Code Playgroud)
在Web.Config中
<membership defaultProvider="CustomsMembershipProvider">
<providers>
<clear/>
<add name="CustomsMembershipProvider" type="namespace.CustomsMembershipProvider"/>
</providers>
</membership>
<roleManager enabled="true" defaultProvider="customRoleProvider">
<providers>
<clear/>
<add name="customRoleProvider" type="namespace.customRoleProvider"/>
</providers>
</roleManager>
Run Code Online (Sandbox Code Playgroud)
现在在NinjectWebCommon中
private static IKernel CreateKernel()
{
var kernel = new StandardKernel();
kernel.Bind<Func<IKernel>>().ToMethod(ctx => () => new Bootstrapper().Kernel);
kernel.Bind<IHttpModule>().To<HttpApplicationInitializationHttpModule>();
RegisterServices(kernel); …
Run Code Online (Sandbox Code Playgroud) asp.net-mvc entity-framework ninject custom-membershipprovider
我正在创建一个MVC4多租户站点,该站点为每个租户使用单独的数据库,并且一直试图让每个租户都没有任何运气.
由于某种原因,无论我做什么,connectionStringField总是为null.任何想法为什么会这样?
public class CodeFirstMembershipProvider : MembershipProvider
{
public override void Initialize(string name, System.Collections.Specialized.NameValueCollection config)
{
base.Initialize(name, config);
// hard coded for testing
string connectionString = @"server=localhost;database=masterdb;uid=master;pwd=password";
// Set private property of Membership provider.
FieldInfo connectionStringField = GetType().BaseType.GetField("_sqlConnectionString", BindingFlags.Instance | BindingFlags.NonPublic);
if(connectionStringField != null)
connectionStringField.SetValue(this, connectionString);
}
}
Run Code Online (Sandbox Code Playgroud) 我正在使用自己的会员提供商,我可以登录和注销.当我登录时,它已经登录了一会儿,然后没有用户登录.我不知道问题出在哪里但是当我在我的计算机上尝试它(IIS Express)时,用户登录很长时间但是当我将我的网站上传到我的托管服务提供商时,用户只登录了几秒钟.感谢帮助
asp.net-mvc asp.net-membership login custom-membershipprovider asp.net-mvc-3