我有一个ASP.NET MVC应用程序,有一些RESTful服务,我试图使用自定义基本身份验证来保护它们(它们是根据我自己的数据库进行身份验证).我已经通过编写HTTPModule实现了这一点.
我有一个方法附加到HttpApplication.AuthenticateRequest事件,它在身份验证失败的情况下调用此方法:
private static void RejectWith401(HttpApplication app)
{
app.Response.StatusCode = 401;
app.Response.StatusDescription = "Access Denied";
app.CompleteRequest();
}
Run Code Online (Sandbox Code Playgroud)
此方法附加到HttpApplication.EndRequest事件:
public void OnEndRequest(object source, EventArgs eventArgs)
{
var app = (HttpApplication) source;
if (app.Response.StatusCode == 401)
{
string val = String.Format("Basic Realm=\"{0}\"", "MyCustomBasicAuthentication");
app.Response.AppendHeader("WWW-Authenticate", val);
}
}
Run Code Online (Sandbox Code Playgroud)
此代码添加"WWW-Authenticate"标头,告诉浏览器抛出登录对话框.当我使用Visual Studio的Web服务器进行本地调试时,这非常有效.但是当我在IIS7中运行它时失败了.
对于IIS7,除了匿名之外,我都关闭了内置的身份验证模块.它仍然返回HTTP 401响应,但它似乎正在删除WWW-Authenticate标头.
有任何想法吗?
authentication asp.net-mvc iis-7 httpmodule custom-authentication
我目前正在让VLC流式传输WMV文件,同时将文件转换为带有MP3音频的H264.这意味着您将获得一个只包含IP和端口的URL(http://127.0.0.1:1234/).当我试图让MPMoviePlayerController流这个时,它说它无法打开那个扩展...
我该怎么办?我听说你必须创建一个M3U8文件,但我不知道该怎么做.
有没有解决这个问题的方法,还是有替代MPMoviePlayerController?
提前致谢
我正在尝试创建一些类,允许我检索和操作我的应用程序将创建和管理的一组备份.
我已经提出了以下代码(尚未测试),但我不确定它是否是实现此目的的最佳方式,或者是否有更简单/更好的方法.我正在使用Delphi 2010.
我有一个包含备份详细信息的类(TBackupItem),然后我需要一个包含TBackupItem集合的类,最后我将有一个类来管理备份的读取和写入,并且还公开了一个访问的属性TBackupItem的集合.
type
TBackupItem = class
private
FBackupProgram: string;
FBackupProgramVersion: string;
// There are more variables and properties but for the sake of simplicity I've listed only two
public
property BackupProgram: string read FBackupProgram write FBackupProgram;
property BackupProgramVersion: string read FBackupProgramVersion write FBackupProgramVersion;
end;
TBackupsList = class(???)
private
// This class will hold a list of TBackupItem. What should I use to accomplish this?
end;
TBackupsManager = class(TObject)
private
FBackups: TBackupsList;
public
property Backups: TBackupsList read FBackups write …Run Code Online (Sandbox Code Playgroud) 可能重复:
在C中解析文本
假设我已经以这种格式写入文本文件:
key1/value1
key2/value2
akey/withavalue
anotherkey/withanothervalue
Run Code Online (Sandbox Code Playgroud)
我有一个链表,如:
struct Node
{
char *key;
char *value;
struct Node *next;
};
Run Code Online (Sandbox Code Playgroud)
保持价值观.我如何读取key1和value1?我想在缓冲区中逐行放置并使用strtok(缓冲区,'/').那会有用吗?还有哪些其他方法可以工作,可能更快或更不容易出错?如果可以,请附上代码示例!
Sharp Architecture Contrib似乎暗示它是可能的.看起来他们依赖于"PostSharp",现在已被Castle拦截器所取代.
有没有人使用Sharp架构进行非Web项目?
经历如何?
这是否意味着当使用Sharp架构进行非Web用途时,有人将城堡作为IoC容器锁定?
如果不是Sharp Architecture,那么非web世界的一些受欢迎的应用程序框架是什么[spring.NET?]?
如果要开始一个绿色领域Winforms应用程序,什么应用程序框架将是可取的?
我读了很多关于MVC架构的文章,但我仍然感到困惑.
图1
图1 http://img219.imageshack.us/img219/4576/screenshot20100418at213.png
图2
图2 http://img38.imageshack.us/img38/4576/screenshot20100418at213.png
图3
图3 http://img526.imageshack.us/img526/3900/screenshot20100418at214.png
我正在编写一个TemplateEngine,它允许我在基于文本的文件中使用我自己的标记.我想在应用程序成熟时添加控件作为插件.目前我有一个如下结构:
interface IControl
string Id
object Value
class Label : IControl
string Id
string Value
class Repeater : IControl
string Id
List<IControl> Value
Run Code Online (Sandbox Code Playgroud)
现在,您将使用Value属性立即在Repeater类中看到奇怪的部分.我希望在界面中将Value类型作为对象可以让我灵活地扩展控件.编译器不喜欢这个,我猜这是有充分理由的.
结论:我正在尝试让所有控件类实现相同的接口,但Value属性具有不同的类型.
有没有人有任何建议如何实现这一目标?
注意:请不要建议使用Spark View Engine进行模板化.我有理由为自己创造额外的工作.
我已经创建了这个注册表单,用于使用CodeIgniter向网站注册新用户.我的问题是,每当我输入我的数据库中已存在的用户名,而不是给我我的错误消息,向用户解释这个,它反而给我这个错误消息:
无法访问与您的字段名称对应的错误消息
以下是我的控制器代码的片段.任何帮助将不胜感激:
function register()
{
$this->load->library('form_validation');
$this->form_validation->set_rules(
'username',
'Username',
'trim|required|alpha_numeric|min_length[6]|xss_clean'.
'|strtolower|callback_username_not_exists'
);
// function body here
}
function username_not_exists($username)
{
$this->form_validation->set_message('username','That %s already exists.');
if($this->User_model->check_exists_username($username))
{
return false;
}
else
{
return true;
}
}
Run Code Online (Sandbox Code Playgroud) 我一直在研究和测试如何在MySQL中进行快速随机选择.在这个过程中,我遇到了一些意想不到的结果,现在我不完全确定我知道ORDER BY RAND()是如何工作的.
我一直认为,当你在表上执行ORDER BY RAND()时,MySQL会在表中添加一个新列,其中填充了随机值,然后按该列对数据进行排序,然后例如,您获取上面随机获得的值.我做了大量的谷歌搜索和测试,最后发现Jay在他的博客中提供的查询确实是最快的解决方案:
SELECT * FROM Table T JOIN (SELECT CEIL(MAX(ID)*RAND()) AS ID FROM Table) AS x ON T.ID >= x.ID LIMIT 1;
Run Code Online (Sandbox Code Playgroud)
虽然常见的ORDER BY RAND()在我的测试表上需要30-40秒,但他的查询在0.1秒内完成了工作.他解释了这在博客中是如何运作的,所以我将跳过这个,最后转向奇怪的事情.
我的表是用PRIMARY KEY公用表id以及其它类似的非索引的东西username,age等这里的东西我竭力解释
SELECT * FROM table ORDER BY RAND() LIMIT 1; /*30-40 seconds*/
SELECT id FROM table ORDER BY RAND() LIMIT 1; /*0.25 seconds*/
SELECT id, username FROM table ORDER BY RAND() LIMIT 1; /*90 seconds*/
Run Code Online (Sandbox Code Playgroud)
我有点期待看到所有三个查询大致相同的时间,因为我总是在单个列上排序.但出于某种原因,这并没有发生.如果您对此有任何想法,请告诉我.我有一个项目,我需要快速ORDER BY RAND(),我个人更喜欢使用
SELECT id FROM table …Run Code Online (Sandbox Code Playgroud) 我在我的网页上有一个javascript编辑器,我想询问用户他/她是否想要离开页面,即使有未保存的更改.
我知道我可以通过这种方式向"onbeforeunload对话框"添加自定义消息:
window.onbeforeunload = function() {
return 'You have unsaved changes!';
}
Run Code Online (Sandbox Code Playgroud)
(来源)但我想只显示一些未保存的更改的对话框.怎么做?
谢谢!
c# ×2
mysql ×2
asp.net-mvc ×1
c ×1
callback ×1
codeigniter ×1
delphi ×1
delphi-2010 ×1
file-io ×1
http ×1
httpmodule ×1
iis-7 ×1
interface ×1
javascript ×1
php ×1
random ×1
select ×1
spring.net ×1
text-files ×1
token ×1
vlc ×1
winforms ×1