问题列表 - 第24133页

使用ASP .NET Membership和Profile with MVC,如何创建用户并将其设置为HttpContext.Current.User?

我在代码中实现了一个自定义的Profile对象,如Joel所述:

如何分配配置文件值?

但是,当我创建一个新用户时,我无法让它工作.当我这样做:

Membership.CreateUser(userName, password);
Roles.AddUserToRole(userName, "MyRole");
Run Code Online (Sandbox Code Playgroud)

用户是创建并添加到数据库中的角色,但HttpContext.Current.User仍然是空的,并Membership.GetUser()返回null,所以这(从Joel的代码)不起作用:

static public AccountProfile CurrentUser
{
    get { return (AccountProfile)
                     (ProfileBase.Create(Membership.GetUser().UserName)); }
}

AccountProfile.CurrentUser.FullName = "Snoopy";
Run Code Online (Sandbox Code Playgroud)

我尝试过这样调用Membership.GetUser(userName)和设置Profile属性,但是set属性保持为空,并且调用AccountProfile.CurrentUser(userName).Save()不会在数据库中放置任何内容.我也试着指示用户是有效的和登录,通过调用Membership.ValidateUser,FormsAuthentication.SetAuthCookie等等,但是当前用户仍然是空的或匿名的(根据我的浏览器的cookie的状态).

解决(进一步编辑,见下文):根据Franci Penov的解释和一些更多实验,我找出了问题.Joel的代码和我尝试的变体只适用于现有的个人资料.如果不存在Profile,ProfileBase.Create(userName)则每次调用时都会返回一个新的空对象; 您可以设置属性,但它们不会"粘住",因为每次访问时都会返回一个新实例.设置HttpContext.Current.User一个新的GenericPrincipal 将会给你一个User对象,但没有一个Profile对象,ProfileBase.Create(userName)并且HttpContext.Current.Profile仍将指向新的,空的对象.

如果要在同一请求中为新创建的用户创建配置文件,则需要调用HttpContext.Current.Profile.Initialize(userName, true).然后,您可以填充初始化的配置文件并保存它,并且可以在将来的请求中按名称访问它,因此Joel的代码将起作用.我只在HttpContext.Current.Profile内部使用,当我需要在创建时立即创建/访问配置文件.在任何其他请求,我使用ProfileBase.Create(userName),并且我只公开该版本.

请注意,Franci是正确的:如果您愿意创建用户(和角色)并在第一次往返时将其设置为Authenticated,并要求用户再登录,您将能够更简单地访问该配置文件通过Joel的代码来处理后续请求.让我感到震惊的是,Roles可以在用户创建时立即访问,无需任何初始化,但Profile不是.

我的新AccountProfile代码:

public static AccountProfile CurrentUser
{
    get
    {
        if (Membership.GetUser() != null)
            return ProfileBase.Create(Membership.GetUser().UserName) as …
Run Code Online (Sandbox Code Playgroud)

membership profile asp.net-mvc createuser

17
推荐指数
1
解决办法
1万
查看次数

我可以判断一下iPhone是否有密码?

我正在开发一个应用程序,当你启动它时会要求输入PIN码.那不是很好,但我可以忍受它.问题是,每次手机从睡眠状态唤醒时,我都会被要求提供PIN码.结合操作系统要求输入密码,这太过分了.

有没有合法的方法来检测手机是否有唤醒所需的密码,所以在这种情况下我可以跳过要求PIN码?我不想知道PIN,我实际上并不关心它是否被锁定(例如,如果电话非常短暂地睡着了),我只想知道数据在某种程度上是"受保护的".

security iphone locking

6
推荐指数
1
解决办法
1178
查看次数

从R函数中生成多个图形

我想使用ggplot图形从R中的函数中生成几个图形窗口...

testf <- function(a, b) {
  devAskNewPage(TRUE)
  qplot(a, b);
  # grid.newpage(recording = TRUE)
  dev.new()
  qplot(a, a+a);
  # grid.newpage(recording = TRUE)
  dev.new()
  qplot(b, b+b);
}

library(ggplot2)

x <- rnorm(50)
y <- rnorm(50)
testf(x, y)
Run Code Online (Sandbox Code Playgroud)

但是,dev.new()和grid.newpage()似乎都没有刷新前面的情节.

我知道,在R中,函数通常只生成他们评估的最后一件事,但我想更好地理解这个过程并了解任何可能的解决方法.

思考?

r ggplot2 r-faq

29
推荐指数
1
解决办法
4227
查看次数

什么是通用iPhone和iPad应用程序的构建设置

构建和接受iPad和iPhone的通用应用程序的设置是什么?

也就是说,Project X Info> Build for中的设置是什么

  • 架构[ARCHS]("标准(armv6)"或"优化(armv6 armv7)"或其他)
  • 有效架构[VALID_ARCHS]("armv6 armv7"或其他)
  • 仅构建活动架构(已选中或未选中)

我们在下拉列表中选择什么(Device - 3.2 | Distribution | armv?)?

我们要么在构建时收到警告,而我们还没有为armv7构建警告,或者应用程序上传被拒绝了

"您上传的二进制文件无效.支持iPhone时,可执行文件必须包含对armv6架构的支持".

谢谢您的帮助.

iphone ipad

7
推荐指数
1
解决办法
4497
查看次数

SQL DATEDIFF(年,......,......)是一项昂贵的计算吗?

我正在尝试优化一些非常复杂的SQL查询,因为它需要很长时间才能完成.

在我的查询中,我动态创建了具有许多相同函数的SQL语句,因此我创建了一个临时表,其中每个函数只调用一次而不是多次 - 这将我的执行时间缩短了3/4.

所以我的问题是,如果1000个日期计算的范围缩小到100,我可以期待看到很多不同吗?

编辑:查询如下所示:

SELECT DISTINCT M.MID, M.RE FROM #TEMP INNER JOIN M ON #TEMP.MID=M.MID 
WHERE ( #TEMP.Property1=1 ) AND 
DATEDIFF( year, M.DOB, @date2 ) >= 15  AND  DATEDIFF( year, M.DOB, @date2 ) <= 17 
Run Code Online (Sandbox Code Playgroud)

其中这些是作为字符串动态生成的(按位组合在一起)然后执行,以便可以在每次迭代时更改各种参数 - 主要是最后一行,包含各种DATEDIFF查询.

像这样的大约420个查询,这些日期计算是这样计算的.我知道我可以轻松地将它们全部放入临时表(1000个日期变为50) - 但它是否值得,它会在几秒钟内产生任何差异吗?我希望能比十分之一秒更好地改进.

sql datediff query-optimization

4
推荐指数
1
解决办法
5551
查看次数

C#中的XML多行注释 - 我做错了什么?

根据这篇文章,可以获得多行XML注释 - 而不是使用///,使用/** */.这是我对多行注释的解释,以及我想要发生的事情:

/**
 * <summary>
 * this comment is on line 1 in the tooltip
 * this comment is on line 2 in the tooltip
 * </summary>
 */
Run Code Online (Sandbox Code Playgroud)

但是,当我使用这个表单时,当我将鼠标悬停在我的代码中时弹出的工具提示是单行的,即它看起来就像我写了这样的评论:

/// <summary>
/// this comment is on line 1 in the tooltip
/// this comment is on line 2 in the tooltip
/// </summary>
Run Code Online (Sandbox Code Playgroud)

这种行为实际上是否仍然可以在VS2008中使用?

编辑

gabe指出我误解了"多线"意味着什么,我实际上需要使用<para><br>获得我想要的效果.我继续使用,<br>因为我想控制断线发生的位置,即

/// <summary>
/// this comment is on line 1 in …
Run Code Online (Sandbox Code Playgroud)

c# comments multiline xml-comments visual-studio-2008

26
推荐指数
2
解决办法
1万
查看次数

在Ruby中标记为纯文本?

我目前正在使用BlueCloth在Ruby中处理Markdown并将其显​​示为HTML,但在一个位置我需要它作为纯文本(没有一些Markdown).有没有办法实现这一目标?

是否有降价到纯文本的方法?是否有一个html到纯文本的方法,我可以感受到BlueCloth的结果?

ruby markdown bluecloth

17
推荐指数
2
解决办法
3956
查看次数

在c/c ++中\ x是什么意思?

char arr[]= "\xeb\x2a";
Run Code Online (Sandbox Code Playgroud)

顺便说一下,这些都是一样的:

"\xeb\x2a" VS '\xeb\x2a'

c syntax

38
推荐指数
3
解决办法
6万
查看次数

在构造函数中,指定的最终对象字段是否仍然为空?

在构造函数中,指定的最终对象字段是否仍然为空?

class MyClass {
  private final Object obj = new Object();
  public MyClass() {
    System.out.println(obj); // may print null?
  }
}
Run Code Online (Sandbox Code Playgroud)

如果是的话,这不是一个错误吗?

java null constructor initialization

5
推荐指数
1
解决办法
5862
查看次数

如何标准化Chrome和Firefox之间选择框的高度?

查看Chrome和Firefox中的http://demo.neeraj.name/admin_data.在Firefox中,选择框具有较大的高度.在Chrome中,选择框的高度非常小.

如何让chrome和safari的选择框看起来像Firefox的选择下拉?

css

44
推荐指数
6
解决办法
9万
查看次数