成功登录后,我需要直接获取UserId Guid.以下代码不起作用:
if (Membership.ValidateUser(txtUsername.Value, txtPassword.Value))
{
FormsAuthentication.SignOut();
FormsAuthentication.SetAuthCookie(txtUsername.Value, true);
if (HttpContext.Current.User.Identity.IsAuthenticated)
{
// doesn't run
Guid puk = (Guid)Membership.GetUser().ProviderUserKey;
}
}
Run Code Online (Sandbox Code Playgroud)
以下代码确实有效:
if (Membership.ValidateUser(txtUsername.Value, txtPassword.Value))
{
FormsAuthentication.SignOut();
FormsAuthentication.SetAuthCookie(txtUsername.Value, true);
MembershipUser user = Membership.GetUser(txtUsername.Value);
if (user != null)
{
Guid puk = (Guid)user.ProviderUserKey;
}
}
Run Code Online (Sandbox Code Playgroud)
为什么会这样?除此之外还有其他事情要做SetAuthCookie
吗?
如果我首先使用EF 5和数据库生成数据库的.edmx模型,如何获取实体列的列表?
using (var db = new ProjectNameContext())
{
// string[] colNames = db.Users.
}
Run Code Online (Sandbox Code Playgroud)
我正在寻找的是colNames [0] =="Id",colNames [1] =="FirstName"等.
我有一个链接,点击时将用户重定向到同一页面,除了附加参数:
<a id="lnkExportToPDF" href="javascript:void(0)">Export</a>
$('#lnkExportToPDF').click(function (e) {
e.preventDefault();
window.location.href = path + 'users/export/' + parm1 + '/' + parm2;
});
Run Code Online (Sandbox Code Playgroud)
在服务器端,我通过在请求路径中检查"导出"来处理它,如果找到它,我会将PDF文件写入响应:
System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
response.Clear();
response.AddHeader("Content-Type", "application/pdf");
response.AddHeader("Content-Disposition", String.Format("attachment; filename=" + filename + ".pdf; size={0}", buffer.Length.ToString()));
response.BinaryWrite(buffer);
response.End();
Run Code Online (Sandbox Code Playgroud)
一切正常,用户可以下载文件,但用户使用loader.gif
页面上的任何其他操作都会显示未动画的加载程序.
是什么导致这种情况发生?在响应完成后有没有办法刷新/重新加载页面/ javascript?
编辑:我在这里找到了一个有用的JS工具:http://fgnass.github.io/spin.js/但除非绝对必要,否则我不想使用它
edit2:我也尝试使用通用处理程序(.ashx)来处理请求(即将href更改为指向处理程序),但是一旦页面重定向并且文件被写入,同样的事情就会发生
edit3:到目前为止,问题只发生在Firefox中.我尝试过使用Chrome和IE浏览器,gif在这些浏览器中保持动画效果.(每个的最新版本)
edit4:如果我使用带有src的iframe作为图像它可以解决问题,但它非常hacky并且它的样式在所有浏览器中看起来与居中/填充/边距不同.
编辑5:是的.如果我用萤火虫检查冷冻的GIF,它会神奇地解冻自己.
(我看过所有类似的问题/答案,但没有一个能解决我的问题.)
代码:
var timeoutHandle;
function showLoader(show) {
if (show) {
$('.loader').html('Loading...');
$('.loader').show();
timeoutHandle = setTimeout(function () {
if ($('.loader').is(':visible')) {
$('.loader').html('Still loading...');
}
}, 15000);
}
else {
$('.loader').hide();
clearTimeout(timeoutHandle);
}
}
Run Code Online (Sandbox Code Playgroud)
AJAX函数只是showLoader(true)
在调用服务器之前调用,然后showLoader(false)
在结果之后调用.我有时会在15秒之前看到文本从"正在加载..."更改为"仍然加载...",因此就好像计时器线程仍在运行一样.上面的代码有什么问题吗?或者问题可能与其他代码有关..
编辑:我必须添加,showLoader(true)
可以在服务器响应之前再次(再次)调用
我需要加密一个字符串,然后再次解密它.
我在这里实现了解决方案并且它运行良好,但结果字符串不合适,因为它需要简单且足够短以供用户使用.
我正在加密递增数据库ID(从1开始)并且不会超过500.理想情况下,我希望加密字符串的长度不超过6个字符.
任何想法赞赏..
编辑:这是一个冗长的形式,用户可以在以后使用此生成的字符串恢复
我创建了一个新的Web窗体(ASP.NET 4.5)项目,我正在尝试使URL路由工作.
RouteConfig.cs
看起来像这样:
routes.MapPageRoute("surveyhome", "survey/home", "~/Survey.aspx");
routes.MapPageRoute("surveyquestions", "survey/questions/{q}", "~/Survey.aspx");
Run Code Online (Sandbox Code Playgroud)
我有一个看起来像这样的链接:
<a href="/survey/questions/1">1</a>
Run Code Online (Sandbox Code Playgroud)
它正确加载Survey.aspx
页面,所以我知道它部分工作,但这段代码(在该页面的代码隐藏)不起作用:
if (Page.RouteData.Values["q"] != null)
{
// do something
}
Run Code Online (Sandbox Code Playgroud)
它始终为空.为什么?
当您声明Button
要DefaultButton
在ASP.NET中使用时会发生什么Panel
?我知道ASP.NET会将Panel的内容呈现给a div
并将一堆东西传递给ViewState.ViewState中是否有处理渲染Button的click事件的JavaScript?我认为ViewState就是那个 - 有关状态的信息.它是如何工作的?
我正在使用Parallel.ForEach
它,它极大地提高了我的代码的性能,但我对DbContext
多线程感到好奇。我知道它不是线程安全的,所以我在需要的地方使用锁。
循环遍历字典并计算统计信息:
Dictionary<string, List<decimal>> decimalStats = new Dictionary<string, List<decimal>>(); // this gets populated in another irrelevant loop
List<ComparativeStatistic> comparativeStats = db.ComparativeStatistics.ToList();
var statLock = new object();
Parallel.ForEach(decimalStats, entry =>
{
List<decimal> vals = ((List<decimal>)entry.Value).ToList();
if (vals.Count > 0)
{
string[] ids = entry.Key.Split('#');
int questionId = int.Parse(ids[0]);
int yearId = int.Parse(ids[1]);
int adjacentYearId = int.Parse(ids[2]);
var stat = comparativeStats.Where(l => l.QuestionID == questionId && l.YearID == yearId && l.AdjacentYearID == adjacentYearId).FirstOrDefault();
if (stat == null)
{ …
Run Code Online (Sandbox Code Playgroud) c# parallel-processing multithreading entity-framework parallel.foreach
我已经看到过像这样的其他解决方案非常简单,但如果javascript函数不仅仅是做confirm('sure?');
什么呢?我永远不知道什么时候会回归布尔.
所以我决定实现我的所有 ASP.NET按钮:
<button id="btnDelete" name="btnDelete" class="btn">Delete</button>
<asp:Button ID="_btnDelete" runat="server" OnClick="_btnDelete_Click" style="display:none;" />
$('#btnDelete').click(function (e) {
$.blockUI({ message: $('#divConfirmDeleteModal'), overlayCSS: { cursor: 'default' }, css: { cursor: 'default' }, baseZ: 5555 });
return false;
});
$('#btnDeleteYes').click(function () {
$('#<%=_btnDelete.ClientID%>').trigger('click');
});
$('#<%=_btnDelete.ClientID%>').click(function (e) {
// the delay happens here. if i put an alert here, it fires,
// but then the page just loads until eventually the method gets called
<%= ClientScript.GetPostBackEventReference(_btnDelete, string.Empty) %>;
});
Run Code Online (Sandbox Code Playgroud)
..它一直运作良好,直到现在.我在IE中遇到问题(甚至是版本10) …
(不确定我是否需要GroupBy)
我的(简化)表格:
Products
(ProductID,Name,Code)
Invoices
(InvoiceID,Number,IsPaid)
Invoices_Products
(InvoiceID,ProductID,Quantity,Price) - 多对多链接表
我需要显示按产品代码分组的付款发票的发票_产品列表(数量*价格).
我首先用来获取可以绑定到UI的集合的代码:
IEnumerable<Invoices_Products> invoices_products = db.Invoices_Products
.Where(ip => ip.Invoice.IsPaid).DistinctBy(m => m.Product.Code);
Run Code Online (Sandbox Code Playgroud)
然后我遍历这个以将其绑定到UI:
List<BindableInvoiceProduct> bindableInvoiceProducts =
new List<BindableInvoiceProduct>();
foreach (var item in invoices_products)
{
decimal salesValue = db.Invoices_Products.Where(ip => ip.Invoice.IsPaid
&& ip.Product.Code == item.Product.Code).Sum(m => (m.Price * m.Quantity));
bindableInvoiceProducts.Add(new BindableInvoiceProduct()
{
A = item.A,
B = item.B,
SalesValue = salesValue.ToString()
});
}
Run Code Online (Sandbox Code Playgroud)
(DistinctBy
方法来自morelinq)
为什么这不完全正确?
编辑:
一些数据:
Product - ProductID = 1,Name = 123,Code = A
Product - ProductID = …
c# ×6
asp.net ×5
javascript ×4
jquery ×2
linq ×2
ajax ×1
asp.net-4.5 ×1
encryption ×1
firefox ×1
http ×1
routing ×1
viewstate ×1